The invention disclosed herein relates generally to reporting information to a host computer relating to the pressure applied to a transducer of a pressure-sensitive input device. The transducer has a raw pressure range and sensitivity, and the invention more specifically relates to adjusting the pressure range and sensitivity reported to the host computer. In a specific embodiment, the input device is a pointing device such as a stylus or cursor which is part of an absolute position determining system. The pressure may be applied to the transducer by pressing the device against a surface or by pressing a button or like element carried by the device. When used as part of an absolute position determining system, the transducer inputs the raw pressure-related information to a processor of the position determining system. The absolute position determining system may be a digitizer which includes a processor coupled to receive the raw pressure-related information from the transducer.
Although a pressure-sensitive device incorporating the invention may be employed as an input device with many types apparatus, its presently preferred use is as a pointing device for a digitizer. Examples of pressure-sensitive styli for digitizers are described in U.S. Pat. Nos. Re. 34,095 (Padula et al.) and 5,004,871 (Purcell). The disclosures of those two patents are incorporated herein by reference. A pressure sensitive pointing device has a transducer for detecting the pressure being applied to its tip, or to one or more finger-operated switches. The transducer is ultimately coupled to a processor, typically located in a digitizer tablet which also contains means which cooperate with the pointing device for determining the position of the pointing device relative to a surface of the tablet. The pointing device transmits information related to the detected pressure via a signal conductor or other means (e.g., telemetry) to the digitizer tablet, which in turn processes the raw information and reports it via a signal conductor or other means (e.g., telemetry) to the host computer.
The invention is described below in connection with a digitizer, specifically an electromagnetically coupled digitizer, which includes a pointing device incorporating a pressure transducer and a digitizer tablet incorporating a processor and other circuits. However, the invention is not limited to use with pointing devices got digitizers, and when used in a digitizer, the invention is not limited to any particular digitizer technology or to any particular processing configuration. For example, the digitizer may employ any suitable technology including, but not limited to electromagnetic, electrostatic, magnetostrictive, resistive, ultrasound, optical, etc., and the processor ultimately coupled to the transducer in the pointing device may be part of the pointing device or part of the host computer. Also, the processor of the digitizer may be incorporated in the host computer rather than in the digitizer tablet.
There is considerable variation on the pressure response of pressure-sensitive pointing devices. However, to keep costs low, digitizer manufacturers did not heretofore calibrate the responsiveness of pressure-sensitive pointing devices and did not compensate for manufacturing variations in the pressure response of the pointing devices. Instead, as discussed below, they set the pressure sensitivity and range to accommodate an "average" user. This has the drawback that all users, whether heavy-handed or light-handed, must adjust to a pre-defined pressure response, which for many users is not optimal.
In order to facilitate understanding of the operation of a pressure-sensitive pointing device and the manner in which its range and sensitivity are set, conventionally and in accordance with the invention, certain terms used below are defined. Also, pressure (or force) applied to the tip or a finger-operated switch of the pressure-sensitive pointing device will be referred to below simply as pressure applied to the pointing device. Further, the information related to the pressure applied to the pointing device which is transmitted by the pointing device for use by the processor is described herein in terms of "counts" of arbitrary units which monotonically increase with the amount of pressure applied.
Raw Pressure Count: The count transmitted by the pointing device, which may be a number between 0 and M where M is some maximum number. Typically, the maximum is a power of 2 (less 1), conforming to, for example, the maximum value which can be held in some fixed number of bits, e.g. 127 for 7 bits, 255 for 8 bits, etc..
Minimum Raw Pressure Count: The count transmitted by the pointing device with no external pressure applied thereto. To allow for mechanical tolerance and lack of calibration, this number is "designed" to be non-zero.
Maximum Raw Pressure Count: The count transmitted by the pointing device with "maximum pressure" applied thereto. To allow for mechanical tolerance and lack of calibration, this number is "designed" to be less than M, where M is described above.
Maximum Pressure: The pressure applied to the pointing device at which the raw pressure count remains constant with no discernible change with increased pressure applied to the pointing device.
Raw Pressure Range: Maximum Pressure minus zero.
Raw Pressure Count Range: Maximum Raw Pressure Count minus Minimum Raw Pressure Count. ##EQU1##
Reported Pressure Count: The count provided to the application program as an indication of the amount of pressure that the user is applying to the pointing device. The application program typically uses this count to determine, for example, the width of the line to be drawn on the screen (simulating a paint brush in a graphic arts application), or the darkness of the line (simulating artist chalk), or the speed of animation (simulating an accelerator in a game-like program).
Maximum Reportable Pressure Count: The count which, by convention, represents "saturation". Typically, this limit is set by the "format" established for representing pressure to the application program. In the application program, for example, when this count is reached, the application will draw the "widest" line, the "darkest" line, or apply the "maximum" acceleration.
Minimum Reportable Pressure Count: Typically, this count, by convention, should be zero. But, due to manufacturing variations and lack of calibration, some pressure-sensitive pointing devices (and the associated system for processing raw counts and providing count reports to the applications program) report a non-zero value (a "pre-load" value) when no external pressure is being applied to the pointing device.
Reportable Pressure Range: Maximum minus Minimum Reportable Pressure Counts
Report Pressure Sensitivity: The change of Reported Pressure Counts per change of applied User Pressure (defined immediately below).
User Pressure: The pressure applied to the pointing device by the user.
User Pressure Range: The range of pressure a particular user will apply in using the pointing device.
Heavy-Handed User: Uses large User Pressure Range
Light-Touch User: Uses small User Pressure Range
The drawbacks of prior pressure sensing systems will be discussed for ease of discussion in connection with a graphic arts application program in which the Reported Pressure Count represents the width of a line to be drawn by the applications program running in the host computer. Assume that the widest line that the application program will draw is 20 pixels (or dots in a matrix display or printer) wide, and that convention establishes a Maximum Reportable Count of 100. Thus, the application program will transform (perhaps, although not necessarily, by linear interpolation) the 100 reported counts into 20 pixel line widths.
Since an application program is designed to work with a variety of commercially available pressure-sensitive pointing devices, and some have a pre-load so that the pointing device transmits a non-zero, positive Raw Pressure Count without any pressure being applied to the pointing device, a typical Reported Pressure Count to line width transformation (interpolation) might be:
______________________________________ Reported Pressure Count line width ______________________________________ 0-5 0 (no drawing for counts caused by pre-load) 6-9 1 10-14 2 {. . .} . . . 95-97 19 97-100 20 ______________________________________
For a particular pointing device with a Minimum Raw Pressure Count of 1000, a Maximum Raw Pressure Count of 9000 and a Maximum Pressure produced with two pounds of force applied, and, for simplicity, having a linear response, the Raw Pressure Count Sensitivity would be 250 Raw Pressure Counts per ounce of force applied. (9000-1000)/(2*16). Assume that this particular pointing device was from a lot of pointing devices whose characteristics vary, due to manufacturing tolerances, etc., and that the particular pointing device's characteristics are within the range expected for the lot. Since the reporting system was not calibrated for the particular pointing device, the transformation from raw counts to reported counts was heretofore based on a "typical" pointing device or a "worse case" pointing device, or on some other statistical representation of a pointing device's performance (collectively referred to below as a "generic" pointing device). Thus, for example, the statistical representation of a generic pointing device used to determine the transformation may have used 800 as the Minimum Raw Pressure Count, and 6800 as the Maximum Raw Pressure Count at 30 ounces of force for a Raw Pressure Count Range of 6000 counts (for a calculated "generic" resolution of 200 counts per ounce). To transform the Raw Pressure Count Range of 6000 into a maximum Reportable Pressure Count of 100, by linear interpolation (other interpolations may be used) each 60 raw counts equals 1 Reported Pressure Count. Thus, the pre-load count of 1000 on the particular pointing device results in a Reported Pressure Count of 3.33 ((1000-800)/60)), which is reported as a "3". To draw a one pixel wide line, the Reported Pressure Count would have to reach 6, which equates to a user-applied force of 0.64 oz. (Raw Pressure Count of 1160=1000+(250 cts/oz.*0.64 oz); transformed by (1160-800)/60 to a count of 6). To draw a two pixel wide line, the user would have to apply 1.6 oz., which produces a Raw Pressure Count of 1400. (1000+250* 1.60) A Raw Pressure Count of 1400 produces a Reported Pressure Count of 10 ((1400-800)/60). Thus, changing the line width by one pixel requires a change of force of one ounce, using the above example.
To draw a maximum width line, the user would have to apply about 221/2 oz. of force, which is too much pressure to require while drawing a line. Therefore, most applications (or drivers which buffer the information between the digitizer processor and the application) allow the user to scale the values up or down. Thus, for example, a Light-Touch User may want to scale the range down by a factor of 10, so that 2.2 ounces is sufficient to draw the widest line. Or a Heavy Handed User may want to scale down by a factor of 2, for an 11 ounce maximum User Pressure Range.
However the Light Touch User will lose some ability to draw lines of particular widths if the user scales down by 10. Since the pre-load value reported by the pointing device of the above example is 3, scaling down by 10 produces a count of 30 which would produce a line about 5 pixels wide. Even if the application or the driver allowed the user to offset the count by the pre-load amount (to produce 0 instead of 30), by subtracting 3 from the reported count, a problem remains. When the user applies pressure and a count of 4 is produced, it will be scaled up to 10 [(4-3)*10], producing a two pixel wide line. When a 5 count is produced, a four pixel wide line is produced. Thus, by scaling by a factor of 10, the user is precluded from obtaining the desired degree of control over the widths of the line. (In this example, lines of 1 or 3 pixels width can not be selected).
To scale and still allow for the selection of each line width, the user would have to limit the scaling to a factor of 3 or 4. With a factor of 3, the user would have to apply over 7 ounces to draw a widest width line, and 7 ounces may not be comfortable to a Light Touch User.
Alternatively, some systems allow the user to change the internal transformation factors. Thus, in the above example, the user could direct the system to set 1000 as the Minimum Raw Pressure Count (instead of the 800 default), and 1600 as the Maximum Raw Pressure Count, which, for the particular pointing device in the above example, would equate to a Maximum Pressure of 2.4 oz. needed to achieve the Maximum Reportable Pressure Count. This, however, is not a simple process, as it requires the user to understand the basic operations of the pointing devices and the mechanics of a mathematical transformation. The typical user of a pressure-sensitive pointing device is not a mathematician, and requiting the user to perform these tasks would seriously detract from the system's acceptability.
Other systems set the transformation parameters lower than the achievable Raw Pressure Maximum, thereby increasing the pointing device's sensitivity for the Light Handed User, but in so doing, they reduce the Raw Pressure Range. A reduction in the Raw Pressure Range will be disadvantageous to a Heavy Handed User--a person who normally leans hard on a pen is not going to be satisfied by a pointing device that produces the maximum line width at 2 or 3 ounces, and may not be able to modify his/her drawing style to control the line width at this low pressure/high sensitivity range.
Because of these human factors, most pressure-sensitive pointing device manufacturers adjust the transformation parameters not only for the genetic pointing device's performance, but also for the typical user's preferences. As a result, the pointing device may be acceptable to most people, but is less than optimal to most people also.